package com.engine4cloud.tdf.supervision.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.engine4cloud.tdf.common.core.constant.enums.InvAuditActionStatusEnum;
import com.engine4cloud.tdf.common.data.web.response.PageInfo;
import com.engine4cloud.tdf.common.data.web.response.Params;
import com.engine4cloud.tdf.supervision.dto.InvAuditDTO;
import com.engine4cloud.tdf.supervision.dto.create.DcpgAuditAssignCreateDTO;
import com.engine4cloud.tdf.supervision.dto.create.DcpgAuditCreateDTO;
import com.engine4cloud.tdf.supervision.dto.create.DcpgCountyAuditCreateDTO;
import com.engine4cloud.tdf.supervision.dto.query.DcpgAuditQueryDTO;
import com.engine4cloud.tdf.supervision.dto.result.DcpgAuditResultDTO;
import com.engine4cloud.tdf.supervision.dto.result.DcpgInvestigationResultDTO;
import com.engine4cloud.tdf.supervision.dto.result.EnumsTypeResultDTO;
import com.engine4cloud.tdf.supervision.entity.DcpgAuditResultEntity;

import java.util.List;

public interface DcpgAuditResultService extends IService<DcpgAuditResultEntity> {

    PageInfo<DcpgAuditResultDTO> pageList(Params page, DcpgAuditQueryDTO dto);

    DcpgAuditResultDTO getById(Long id);

    Boolean audit(DcpgAuditCreateDTO dto, InvAuditDTO audit);

    Boolean assign(DcpgAuditAssignCreateDTO dto);

    Boolean accept(DcpgAuditCreateDTO dto);

    Boolean refuse(DcpgAuditCreateDTO dto);

    Boolean submit(DcpgAuditCreateDTO dto);

    Boolean audit(DcpgCountyAuditCreateDTO dto);

    List<DcpgAuditResultDTO> getListByCode(String code);

    void delivery(DcpgInvestigationResultDTO inv);

    /**
     * 获取最新的一条记录
     *
     * @param code   调查评估编号
     * @param status 审核状态
     * @return DcpgAuditResultDTO
     */
    DcpgAuditResultDTO getLatest(String code, InvAuditActionStatusEnum status);

    List<EnumsTypeResultDTO> status();
}